Conventionally, it may have been desirable to store as much data as possible on tape for reasons including, but not limited to, high capacity, low cost, low power consumption, and long term retention. One challenge with storing large amounts of data on tape for long periods of time is the ability to read the data back reliably. Handling the media, environmental conditions, wear of tape drives and the media, or other factors may contribute to errors while reading the data. Even though the resiliency of the drives and media may be sufficient to overcome and recover from many types of errors using, for example, error correction codes and retries, some types of errors may result in unrecoverable read errors.
Losing data can be expensive, time-consuming, and very annoying. Therefore, data storage systems may store data in different locations on different devices in different ways to reduce the risk of losing data. For example, copies of files may be mirrored on multiple devices or may be distributed across redundant collections of devices. Data storage systems may also provide techniques to recreate lost data in the unfortunate event that data is lost. For example, if a file cannot be read from a first tape, then a copy of the file may be read from a second tape.
One conventional system that facilitates recreating data lost due to an unrecoverable read error may simply store a threshold number of copies of data in multiple locations. If one copy is lost, a backup copy may be used. However, conventional approaches like this may end up storing more copies than are necessary and may place undesirable constraints on tape homogeneity. With ever increasing data storage demands, storing more copies than are necessary to facilitate recovery may be undesirable and expensive. Additionally, when the data storage system is tape-based, the conventional approaches may place undesired constraints on the mirroring tape systems. For example, multiple tapes and multiple tape drives having similar or even identical sizes, performance, and other attributes may be required.
Prior art FIG. 1 illustrates a conventional system 100 for archiving files. While files are illustrated, more generally system 100 could archive data. System 100 stores files on different types of media including a set 110 of disks (e.g., disk 112, disk 114, . . . disk 118) and a set 120 of removable media storage (e.g., tape 122, tape 124, . . . tape 128). System 100 may interact with a different number of disks, may interact with different types of disks (e.g., platter, solid state), and may arrange the disks in different configurations. Similarly, system 100 may interact with a different number of tapes, may interact with different types of tapes, and may interact with different configurations of tapes.
System 100 may receive data 130 (e.g., file 132, file 134, object 136) to be archived or otherwise stored. System 100 may manage data 130 as part of maintaining a file system 150. An archive application 140 controls a backend storage manager 160 to store the data 130 on a member of the set 110 of disks or on a member of the set 120 of tapes. System 100 may store a file on both a disk and a tape to hopefully avoid losing data if one of the devices fails. For archiving, the data 130 would more likely be stored on tape while for near-lining or some other storage the data 130 would more likely be stored on disk. Some conventional systems may store every copy of a file that is received while other conventional systems may only store a single copy of a file.
Prior art FIG. 2 illustrates a tape 122 experiencing an unrecoverable read error. System 100 may have tried and failed to read a file from tape 122. Traditional systems have attempted to account for unrecoverable read errors in different ways. In one conventional approach, if the copy on tape 122 is unreadable, then a copy on another device (e.g., disk 112) could be read, if available. If the second copy was on another tape (e.g., tape 124), then that tape may need to be mounted to be able to read the duplicate copy.
In another conventional approach, a RAID-like strategy for tapes may have been employed. RAID stands for redundant array of independent disks and uses multiple disks to store data in ways that facilitate retrieving or recreating the data even if one of the disks fails. RAIT stands for redundant array of independent tapes and can similarly use multiple tapes to store data in a way that facilitates retrieving or recreating the data even if one of the tapes fails. RAIT could include, for example, mirrored pairs of tapes (e.g., RAIT-1), parity-based sets using three or more tapes, and other configurations. Using RAIT, the unrecoverable read error illustrated in prior art FIG. 2 might be overcome if tapes adjacent to the failed tape were part of a RAIT set and contained information sufficient to overcome the lost data.
The foregoing statements are not intended to constitute an admission that any patent, publication or other information referred to herein is prior art with respect to this disclosure. Rather, these statements serve to present a general discussion of technology and associated issues in the technology.